package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;

/**
 * @desc BffChangeColumnDto
 * @使用场景
 */
@Data
public class BffChangeColumnDto implements Serializable {

    /**
     * 对象属性编码:
     */
    @NotNull(message = "对象属性编码不能为空")
    @ApiModelProperty("对象属性编码")
    private String objectPropertyCode;

    /**
     * 对象属性名称:
     */
    @ApiModelProperty("对象属性名称")
    private String objectPropertyName;

    /**
     * 变更字段内容:
     */
    @NotNull(message = "变更字段内容不能为空")
    @ApiModelProperty("变更字段内容")
    private String metaDataColumnContent;

    /**
     * 变更字段中文内容:
     */
    @ApiModelProperty("变更字段中文内容")
    private String columnContent;

    /**
     * 原始字段中文内容:
     */
    @ApiModelProperty("原始字段中文内容")
    private String oriColumnContent;
/**
     * 主体类型编码 ORG:组织架构 DEPT:部门 STATION_TYPE:岗位类型
     */
    @ApiModelProperty("主体类型编码")
    private String	 subjectTypeCode;

    /**
     * 主体变更日志类型
     */
    @ApiModelProperty("主体变更日志类型")
    private String	 subjectChangeType;

    /**
     * 主体批次下更新状态 NEW:本次新增 UNCHANGED:正常未变 REVISION:本次修订 ARCHIVE:本次存档
     */
    @ApiModelProperty("主体批次下更新状态")
    private String	 subjectUpdateStatus;
/**
     * 内容表主键ID 
     */
    @NotNull(message = "内容表主键ID不能为空")
@ApiModelProperty("内容表主键ID")
    private String	 entityId;
/**
     * 自定义字段 
     */
    @NotNull(message = "自定义字段不能为空")
@ApiModelProperty("自定义字段")
    private String	 customField;
/**
     * 关联目标内容ID 
     */
    @NotNull(message = "关联目标内容ID不能为空")
@ApiModelProperty("关联目标内容ID")
    private String	 targetCycleContentId;

    /**
     * 被评对象目标周期ID 
     */
    @NotNull(message = "被评对象目标周期ID不能为空")
@ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffChangeColumnDto that = (BffChangeColumnDto) o;
      return  objectPropertyCode == that.objectPropertyCode&&objectPropertyName == that.objectPropertyName&&metaDataColumnContent == that.metaDataColumnContent&&columnContent == that.columnContent&&oriColumnContent == that.oriColumnContent&&subjectTypeCode == that.subjectTypeCode&&subjectChangeType == that.subjectChangeType&&subjectUpdateStatus == that.subjectUpdateStatus&&entityId == that.entityId&&customField == that.customField&&targetCycleContentId == that.targetCycleContentId&&evaObjTargetCycleId == that.evaObjTargetCycleId;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), objectPropertyCode,objectPropertyName,metaDataColumnContent,columnContent,oriColumnContent,subjectTypeCode,subjectChangeType,subjectUpdateStatus,entityId,customField,targetCycleContentId,evaObjTargetCycleId);
    }
    // Generated by moon;
}
